I. Field
The present invention relates generally to the efficient operation of a device, and more particularly, to a system for selectively enabling operating modes of a device.
II. Description of the Related Art
Advances in technology have resulted in the development of a variety of devices for home, office, and personal use. For example, computer systems, such as desktops, notebooks, and tablet computers have become powerful tools for use at home or in office environments. Personal devices, such as wireless telephones, personal digital assistants (PDAs), and paging devices have also become more powerful and are now widely used.
Many devices now comprise complex hardware and software that run operating systems such as UNIX, LINUX, or similar operating systems. Generally, these operating systems provide for multiple modes of operation. For example, most systems provide privileged and non-privileged modes of operation. Programs executing in the privileged mode of operation are allowed to access memory and system resources without limitation. Programs executing in the non-privileged mode are restricted from accessing certain memory regions and/or device systems. This configuration provides a level of protection to important memory or device functions. For example, by executing third-party applications in the non-privileged mode, important memory regions and device functions can be protected from unauthorized access. Also, such an arrangement allows the system to isolate faults during execution.
In systems without multiple modes of operation, there need be no concern for protecting the integrity of privileged mode, and existing software is not structured in a way to accommodate a proper division between privileged and non-privileged operation. Software written in this manner is incompatible within a system that supports privileged and non-privileged modes of operation.
These compatibility issues complicate the task of moving a large body of software from a system that does not support multiple modes of execution to a system that does. The software as a whole cannot be tested intact until all the pieces have been migrated to the multi-mode model.
Therefore, what is needed is a system that supports multiple modes of operation and can optionally run software in one mode of operation without change to the software. In such a system, applications can be executed and tested with older software while they are being converted to support multiple modes of operation.